﻿using System.Text;

namespace lie5
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.OutputEncoding=Encoding.UTF8;
            int w=50,h=30;
            Console.SetWindowSize(w, h);
            Console.SetBufferSize(w, h);
            int scene = 1;//场景编号
            int option = 0;//选项编号
            Console.CursorVisible = false;//隐藏光标
            while (true)
            {
                switch(scene)
                {
                    case 1:
                        Console.Clear();//清除上个场景内容
                        Console.SetCursorPosition(w/2-11, 8);//w/2-7是因为除2会将文字放到中心位置，减11是因为光标在第一个字，一共有七个字，要移动到中心位置
                        Console.Write("Charlie勇士营救Miku公主");
                        //给开始界面构造一个循环
                        int number = 0;
                        bool exit = false;
                        //用一个标识  来处理 想要在while循环内部的switch逻辑执行时 希望退出外层while循环时改变标识即可
                        while (true)
                        {
                            //显示  内容
                            //先设置光标再显示内容
                            Console.ForegroundColor =number==0? ConsoleColor.DarkBlue:ConsoleColor.White;//三目运算符
                            Console.SetCursorPosition(w/2-4,11);
                            Console.Write("开始游戏");
                            Console.ForegroundColor=number==1? ConsoleColor.DarkBlue:ConsoleColor.White;
                            Console.SetCursorPosition(w/2-4,13);
                            Console.Write("结束游戏");
                            char input = Console.ReadKey(true).KeyChar;
                            switch(input)
                            {
                                case 'w':
                                case 'W':
                                    --number;
                                    if(number<0)
                                    {
                                        number = 0;
                                    }
                                    break;
                                case 's':
                                case 'S':
                                    ++number;
                                    if(number>1)
                                    {
                                        number = 1;
                                    }
                                    break;
                                case 'j':
                                case 'J':
                                    if(number==0)
                                    {
                                        //改变当前选择的场景编号
                                        scene = 2;
                                        //退出内层循环
                                        exit = true;
                                    }
                                    else
                                    {
                                        Environment.Exit(0);
                                    }
                                        break;
                            }
                            if (exit)//放外面，这样才能直接退出while循环
                            {
                                break;
                            }
                        }
                        break;
                    case 2:
                        Console.Clear();


                        //设置颜色为红色
                        Console.ForegroundColor = ConsoleColor.Red;
                        //画墙
                        //上方墙
                        for (int i = 0; i < w; i += 2)
                        {
                            //上方墙
                            Console.SetCursorPosition(i, 0);
                            Console.Write("■");
                            //下方墙
                            Console.SetCursorPosition(i, h - 1);
                            Console.Write("■");
                            //中间墙
                            Console.SetCursorPosition(i, h - 6);
                            Console.Write("■");
                        }
                        for (int i = 0; i < h; i++)
                        {
                            //左边的墙
                            Console.SetCursorPosition(0, i);
                            Console.Write("■");
                            //右边的墙
                            Console.SetCursorPosition(w - 2, i);
                            Console.Write("■");
                        }
                        while(true)//我真服了我靠，挑半天错不知道怎么改变老闪结果就这个空循环不小心跳过了没看见浪费了我差不多三个多小时啊啊啊啊啊我恨啊啊啊啊啊啊啊啊啊啊啊啊啊
                        {

                        }
                        break;
                        
                    case 3:
                        Console.Clear();//同上
                        Console.WriteLine("场景3");
                        break;
                }
            }
        }
    }
}
